home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 April / CHIP 1996 aprilis (CD06).zip / CHIP_CD06.ISO / hypertxt.arj / 92 / STARSHIP.CD < prev    next >
Text File  |  1995-09-15  |  12KB  |  212 lines

  1.       @VCsillaghajón a pokolba@N
  2.  
  3.       @VA Starship vírus@N
  4.  
  5.           A   vírusszakemberek  az   önmagukat  átíró   vírusokról
  6.       informálják a programozókat, remélve, hogy a védekezôket  és
  7.       nem az új vírusok kiagyalóit támogatják ezzel.
  8.           Az  Internet   adathálózaton  egyre-másra   érkeznek  az
  9.       érdekes  vírushatás-elemzések.  Rámutatnak  arra,  hogy  egy
  10.       vírus programozástechnikai trükkjeinek ismertetése immár  az
  11.       adatbiztonságot szolgálja.  Korábban az  volt az  álláspont,
  12.       hogy a teljes hallgatás a célravezetô. A vírusokban használt
  13.       rutinok nagy része ugyanis tisztességes célokra is  kiválóan
  14.       alkalmazható.
  15.           A nemzetközi rendszerekben egyre többször találkozunk  a
  16.       zöld és  a vörös  kód fogalmával.  A vörösön  a továbbra sem
  17.       publikálandó,  etikátlan  kezekben  igen  veszélyes  kódokat
  18.       értik,   például   a   MUTATE.ASM   mutációs   rutin  teljes
  19.       forráskódját és a  teljes vírus-forráskódokat. A  további, e
  20.       körbe   nem   esô  információk   immár   megzöldültek,  azaz
  21.       publikálhatók.  Ezek  nem teljes  víruskódok,  hanem érdekes
  22.       részmegoldások.  Céljuk  az,  hogy  ismertté  váljanak,   és
  23.       elvegyék       a       vírusíró       ""szakemberek"      és
  24.       másolásvédelem-fejlesztôk kedvét ezek alkalmazásától.
  25.           A   Starship,  azaz   ""Csillaghajó"  vírus   Moszkvából
  26.       származik. Megoldásai  alapján vélhetô,  hogy nem  egy ember
  27.       kutatásainak eredménye, talán a közvetve bizonyított szovjet
  28.       vírusfejlesztési program terméke. I. G. Muttik volt az elsô,
  29.       aki   részletesen   elemezte  e   kettôs   természetû  vírus
  30.       felépítését és mûködését.
  31.           Az  ötlet,  hogy a  bootszektort  és file-okat  egyaránt
  32.       megfertôzô vírusokat fejlesszenek,  nem olyan régi.  Az elsô
  33.       ilyen  kettôs  természetû  vírus  a  Fridrik  Skulason által
  34.       felfedezett Ghost volt, amit a Thanksgiving (V-1), a Tequila
  35.       és  a Starship  követett. Ezek  megôrjítették a  hagyományos
  36.       kategóriákban gondolkodó szakembereket.
  37.           A Starship Moszkvában jelent meg 1991 januárjában, onnan
  38.       indult világjáró útjára.  Amikor egy Starship  vírus elindul
  39.       és  fertôz,  az  a  dolga,  hogy  bootvírusként  módosítsa a
  40.       merevlemez bootszektorát.  Miután a  vírus felírta  magát és
  41.       egy  rendszerhívás  történt,  a  vírus  átveszi  az  INT 13H
  42.       (alacsony   szintû  lemezkezelés)   és  az   INT  21H   (DOS
  43.       funkcióhívások) vezérlését.  Utána jön  az elsô  nagy trükk,
  44.       elteszi magát a BB00:0  címtôl kezdve a videomemóriába.  Ott
  45.       senki  sem  keresi!  Amikor  rezidens,  akkor  COM  és   EXE
  46.       file-okat fertôz a floppykon. A memóriában 2680 byte hosszú,
  47.       valódi kód  hossza 2560  byte. A  különbség a  változók és a
  48.       puffer által lefoglalt  területbôl adódik. A  merevlemezen 6
  49.       szektort  foglal le,  egyenként 512  byte-tal, ami  összesen
  50.       3072 byte.  Ekkor bootvírusként  viselkedik... Felfedezhetô,
  51.       hogy a  memóriában --  és csakis  ott --  egy szöveg jelenik
  52.       meg, errôl kapta nevét:
  53.           @K>STARSHIP_1<@N
  54.           Normálisan a  vírus a  B00H eltolási  címen található. A
  55.       13H, 21H és  27H interruptokat használja,  és ami a  vírusok
  56.       között ritkaság,  csinál magának  két speciális  interruptot
  57.       (F9H és FCH).
  58.           A   vírusban   van   egy   véletlengenerátor,   amely  a
  59.       videozavarokat  és  a  fertôzési  mechanizmust  vezérli.   A
  60.       véletlengenerátor kezdôértékét a BIOS timer idôszámlálójából
  61.       veszi, a 0:46CH címrôl. A titkosítás során is ezt  használja
  62.       fel.  XOR módszerrel  kódolja el  önmagának mintegy  56%-át,
  63.       minden fertôzéskor más-más kezdôértékkel XOR-ol.
  64.           A Starship a COM file-ok esetében minimálisan 1917  byte
  65.       hosszú file-okat,  EXE programok  esetében minimálisan  1917
  66.       byte,  maximálisan  pedig  512  Kbyte  hosszúságú  file-okat
  67.       fertôz. A COMMAND.COM is  ugyanúgy fertôzôdik, mint a  többi
  68.       COM file.  Az egyes  programfile-típusokat nem  nevük, hanem
  69.       jellegzetes kezdetük  (fejlécük) alapján  azonosítja. A  nem
  70.       szabványos COM és EXE programokat emiatt elrontja.
  71.           A COM file-okban az elsô 3 byte-ot írja át  fertôzéskor.
  72.       Ide  egy  JMP  utasítás három  byte-ja  kerül,  ami a  vírus
  73.       kezdetére  mutat, az  eredeti byte-okat  a vírus  belsejében
  74.       tárolja el, titkosítva.
  75.           Az EXE file-ok fejlécét alaposan megváltoztatja. Oda  új
  76.       CS:IP  belépési  pont  kerül,   ami  a  vírusra  mutat,   de
  77.       megváltoztatja az AA, SP és MINALLOC paramétermezôket is. Az
  78.       eredeti CS, IP,  SS, SP értékek  a vírus belsejében  az A4FH
  79.       címen  találhatók,  kódolva.  Az  IP  utasításmutató  az  új
  80.       fejlécben 4 és 13H  közötti értékeket vehet fel.  Ållandó az
  81.       @KSS-CS=100@N távolság, és az SP értéke: @KSP=800H@N. A Starship nem
  82.       fertôzi meg  az olyan  EXE file-okat,  amelyek fejlécében  a
  83.       MAXALLOC  mezô értéke  kisebb mint  0FFFFH. A  vírus a  file
  84.       végéhez  adódik,  kódolt  formában,  amit  a  vírus dekódoló
  85.       rutinja   --  ez   állandó  --   fejt  vissza.   A   file-ok
  86.       visszaállításához  szükséges  információt  mindig  a   vírus
  87.       kódolt  részébôl  kell visszabányászni,  ami  viszont mindig
  88.       másképp  van   kódolva...  Ráadásul   a  kódoló   részbe  is
  89.       rendszeresen belekerülnek semleges  NOP utasítások, hogy  az
  90.       élet itt se legyen egyszerû. Hagyományos eljárással, állandó
  91.       szekvenciát keresve nem sokra megyünk, ha detektálni akarjuk
  92.       a Starshipet.
  93.           A vírus boot üzemmódban  is képes dolgozni. Ilyenkor  az
  94.       eredeti  bootszektort  alaposan átkódolja.  A  vírus elôször
  95.       teszteli a DOS verziót, 2.0 vagy afelettit igényel. Létrehoz
  96.       egy pszeudo  (ál) bootszektort,  miként más  bootvírusok is.
  97.       Ebben testének egy  részét tárolja. Megnézi  azt is, hogy  a
  98.       videomemória a BB00:0  címtôl rendelkezésére áll-e.  Ezt egy
  99.       MOV/CMP utasítássorozattal  egyszerûen fizikailag  teszteli.
  100.       Következô lépésben megnézi, hogy ott van-e már a  memóriában
  101.       0000:04B0 címen, majd az INT 13H nyolcadik funkcióját  hívva
  102.       megnézi  a  lemez  méretét.  Végül  az  INT  13H   közvetlen
  103.       meghívásával megfertôzi a bootszektort. Három byte-ot ír  át
  104.       a  kezdô  bootszektorban:  azt,  hogy  melyik  fejen,   mely
  105.       szektorban és cilinderen kezdôdik  a boot. A vírus  a kódját
  106.       az elsô  fizikai lemezre  teszi, a  legnagyobb sorszámú  fej
  107.       által  kezelt  legutolsó  cilinder  utolsó  6  szektorába. E
  108.       szektorok tartalmát visszaállíthatatlanul felülírja.
  109.           A  vírus  betöltése  a  sajátmaga  által  létrehozott ál
  110.       bootszektorból  indul,  amelynek  elsô  5  byte-ja  ugyanúgy
  111.       kezdôdik, mint a  valódi (0EBH, 034H,  090H, ""MS"), majd  a
  112.       következô  öt  szektorból   rögtön  a  víruskódot   küldi  a
  113.       memóriába.  A  vírusban  van  egy  boot-számláló,  a   01FCH
  114.       offszeten, amelynek  értéke 00  és 20H  között mozoghat.  Ez
  115.       vezérli a vírus aktivizálódását, de ez nem mindegyik  típusú
  116.       gépen mûködik. A titkosítás kulcsa az XOR maszk byte,  amely
  117.       az 01FDH címen található.
  118.           A vírus akkor töltôdhet be  úgy, hogy a kódolt álboot  a
  119.       videomemóriába töltôdik  a BB00:0000  címtôl kezdve,  amikor
  120.       egy  fertôzött   boot  rekord   elindul.  Ott   végbemegy  a
  121.       dekódolás, és  a kód  lefut, majd  maga után  tölti a valódi
  122.       boot rekordot  is a  memória megfelelô  részébe. Ha monokróm
  123.       monitorvezérlô  van  a gépben,  akkor  nem mûködik,  ugyanis
  124.       nincs  memóriája  a  BB00:0000  címen.  Amikor   betelepült,
  125.       megvizsgálja a DOS 20H, 21H és 27H interruptjait, és átveszi
  126.       ezek vezérlését. Olyan jó eljárást dolgozott ki erre, hogy a
  127.       szisztéma  a  2.0--4.01  közötti  összes  DOS  verzió  alatt
  128.       kifogástalanul üzemel. Az MS DOS 5.0 esetében a reboot során
  129.       kiakad.  Ållandóan  figyeli  az INT  20H-t,  és  az INT  27H
  130.       interrupt  00H,  31H  és a  4CH  funkcióhívásait,  és amikor
  131.       DOS-ba való kilépést kérô rendszerhívást észlel, sürgôsen  a
  132.       videomemóriába    távozik    az    avatatlan    szem   elôl.
  133.       Hasonlóképpen,  amikor  egy  program  a  videomemóriát kezdi
  134.       használni, akkor onnan a hagyományos DOS memóriába menti  át
  135.       magát. Ennek  az a  következménye, ha  egy program egyszerre
  136.       akarja használni  a DOS-t  és a  videomemóriát, akkor  a gép
  137.       kiakad.
  138.           A vírus ""file" változata tartalmaz minden olyan  kódot,
  139.       ami a teljes boot  fertôzéshez szükséges, és ez  fordítva is
  140.       igaz.  Valódi  ""egyet  fizet  kettôt  kap"  jellegû  vírus.
  141.       Számolja   a  rendszerindításokat,   32-tôl  visszafelé.   A
  142.       számláló nullára csökkenése után  még várni kell pár  órát a
  143.       vírus aktivizálódására. Ez az idô a lemezaktivitástól  függ.
  144.       Az  idô   leteltekor  elkezd   zenélni,  majd   a  monitoron
  145.       megjelenik egy ASCII 250 kódú karakter, azaz egy pont. Ez  a
  146.       háttérszínnel átfesti a teljes képernyôt. A hang magassága a
  147.       merevlemez  olvasófejének  pozíciójától  függ.  Amikor   nem
  148.       fordul senki a merevlemezhez,  minden rendben megy, de  ha a
  149.       merevlemezhez fordul  egy program,  szaporodnak a  pontok és
  150.       vonyít a gép. Ha újraindítjuk a rendszert, akkor a vírus vár
  151.       egy   kicsit,  majd   elölrôl  kezdi   a  laikusok   számára
  152.       hardverhibának tûnô ""játékot". Ha nem EGA vagy VGA grafikai
  153.       kártya van a gépben, akkor a gép lemerevedik. A Starship nem
  154.       tudja  kezelni  a  PS/2  gépeket,  ott  számos   meglepetést
  155.       tartogat, aminek oka a videomemória és a DOS memória közötti
  156.       csikicsuki játék és az, hogy a mikrocsatorna miatt kissé más
  157.       a lemezkezelés.
  158.           A Starship merevlemezen csak bootvírusként, floppyn csak
  159.       file-vírusként terjed. Merevlemezen a mentesítéshez megoldás
  160.       az elmentett boot  szektor és partíciós  tábla visszatöltése
  161.       egy tiszta rendszer indítása után. Losinszkijnek, a  szovjet
  162.       vírusok atyjának  forgalomban van  egy Aidstest  nevû keresô
  163.       programja,  amelynek  1991 április  utáni  verziói a  vírust
  164.       Starship-2616 néven  felismerik, de  csak törlést  ajánlanak
  165.       fel.   A   nagyobb   nyugati   víruskeresôk   is   rövidesen
  166.       felkészülnek e kevéssé ismert, de szerencsére lassan terjedô
  167.       vírus fogadására.
  168.           A  vírusszakma  emberei  tesztnek  szánják  az  errôl  a
  169.       vírusról  és  a  Joshi  vírus  átírási  lehetôségeirôl szóló
  170.       szakmai   tanulmányaikat,   amiket   a   szokástól  eltérôen
  171.       elektronikus  publikációs  csatornákon  is  terjesztenek  --
  172.       többek   között  a   Virnet  rendszeren   és  a   Compuserve
  173.       vírusfórumán  keresztül.  E  tanulmányokban  nincs részletes
  174.       víruskód, de elegendô támpontot adnak ahhoz, hogy ha  valaki
  175.       találkozik  a  vírussal és  ért  a programozáshoz,  elbánjon
  176.       vele.  A  szakemberek  kíváncsian  várják,  hogy  az  itteni
  177.       ötletek    megjelennek-e     az    új     vírusokban    vagy
  178.       másolásvédelmekben.   Ha   igen,   akkor   a    számítógépes
  179.       szakembergárda megbukott az érettségin, s továbbra is  marad
  180.       az   ilyen   jellegû   anyagok   publikálásának  megszokott,
  181.       szigorúan zárt rendje.
  182.  
  183.       @KKis János@N
  184.  
  185.  
  186.     A Starship vírus részeinek elhelyezkedése:
  187.     ──────────────────────────────────────────
  188.  
  189.  Hossz %  Offset (hex)  Leírás
  190.  
  191.   3%      000--04F      változódefiníciók és pufferterület
  192.   5%      050--0C1      INT 13H handler
  193.  10%      0C2--1C7      INT 21H handler
  194.  11%      1C8--312      aktív rész és DOS-t ellenôrzô rutinok
  195.   2%      313--340      véletlenszám-generátor
  196.   7%      341--3F7      INT 20H, 21H, 27H handlerek
  197. ┌─── titkosított rész ───────────────────────────────────────┐
  198. │25%      3F8--692      a COM/EXE fertôzô része, részletesen:│
  199. │ 9%      3F8--4DD      input logic                 │
  200. │10%      4DE--5E9      fertôzött kód készítése                 │
  201. │ 6%      5EA--692      output logic                 │
  202. │ 3%      693--6E5      táblázatok                 │
  203. │ 3%      6E6--738      startup code: EXE/COM             │
  204. │12%      739--88F      lemezfertôzés                 │
  205. │ 2%      891--8BF      INT 01H handler (trace)                 │
  206. │11%      8C0--9D7      pszeudo DOS boot és B0H handler      │
  207. └────────────────────────────────────────────────────────────┘
  208.   4%      9D8--A4E      kódot a videomemóriából kitakarító rutin
  209.   2%      A4F--A8F      pufferek (CS, IP, SS, SP stb.)
  210.  
  211. Forrás: FIDO/Virnet
  212.